<?php
/**
 * 班级模型 
 * @date 2014/01/11  
 * @author 马燕龙
 */
class GradeModel extends RelationModel{

	//自动验证
	protected $_validate = array(
		array('name','require','名称必须！'),
		array('status','require','状态必须！'),
		);
	
	protected $_link = array(
		'Employ' => array(
			'mapping_type' => HAS_ONE,
			'class_name' => 'Employ',
			'mapping_name' => 'employ',
			'foreign_key' =>'grade_id'

		),
	);

	//班级状态
	public $status = array(
		''=>'--请选择--',
		1=>'即将开班',
		2=>'正常上课',
		3=>'已结业',
		);

	/**
	 * 改变班级状态为对应的意思 在班级列表中使用
	 * @param array $list 需要处理的数组
	 * @return array  处理后的数组
	 */
	public function changeStatus($list){
		$count = count($list);
		for ($i=0; $i < $count; $i++) { 
			$list[$i]['status'] = $this->status[$list[$i]['status']];
		}
		return $list;
	}

	/**
	 * 为标签库准备数据
	 * 根据班级的状态得到相应状态的班级 并将数组组装成以班级id为key name为value的一维数组
	 * @param int $status_id 班级的状态 默认为空取全部 否则取对应状态的班级
	 * @return array 
	 */
	public function getGradeList($status_id=''){
		if(empty($status_id)){
			$list = $this->order('id desc')->select();
		}else{
			$list = $this->where(array('status'=>$status_id))->order('id desc')->select();		
		}
		
		$newArr = array(''=>'--请选择--');
		foreach($list as $key=>$val){
			$newArr[$val['id']] = $val['name']; 
		}
		return $newArr;
	}

	/**
	 * 根据班级id返回班级的名称
	 */
	public function getGradeName($grade_id){
		$data = $this->find($grade_id);
		return $data['name'];
	}

}